package com.llt.ai.tools;

import cn.hutool.core.date.DateTime;
import com.llt.api.domain.dto.ExamQueryDTO;
import com.llt.api.domain.dto.ExamRankDTO;
import com.llt.api.service.RemoteUserService;
import com.llt.common.core.domain.TableDataInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @Author: llt
 * @Date: 2025-08-07 下午1:22
 */
@Service
@RequiredArgsConstructor
public class ExamAiTool {

    private final RemoteUserService remoteUserService;

    /**
     * 获取竞赛列表
     */
    @Tool(name = "获取竞赛列表", description = "用于获取竞赛列表。如果查询未开始的竞赛，请将 startTime 设置为 current_date")
    public TableDataInfo getExamList(@ToolParam(description = "查询参数") ExamQueryDTO dto){
        return remoteUserService.redisList(dto);
    }

    /**
     * 获取个人竞赛排名
     */
    @Tool(name = "获取个人竞赛排名", description = "用于获取个人竞赛排名, " +
            "如果用户没有传入examId时, 调用我的竞赛列表查询出用户的所有竞赛询问用户要查哪一个, 如果用户传来examId时，直接查询即可")
    public TableDataInfo rankList(ExamRankDTO examRankDTO){
        return remoteUserService.rankList(examRankDTO);
    }

    /**
     * 我的竞赛列表
     */
    @Tool(name = "我的竞赛列表", description = "用于获取我的竞赛列表")
    public TableDataInfo list(ExamQueryDTO examQueryDTO) {
        return remoteUserService.list(examQueryDTO);
    }
}
